/*
题目描述
请计算n*m的棋盘格子（n为横向的格子数，m为竖向的格子数）沿着各自边缘线从左上角走到右下角，总共有多少种走法，
要求不能走回头路，即：只能往右和往下走，不能往左和往上走。

本题含有多组样例输入。
输入描述:
每组样例输入两个正整数n和m，用空格隔开。(1≤n,m≤8)
输出描述:
每组样例输出一行结果
示例1
输入
2 2
1 2
输出
6
3
*/

#include <iostream>

using namespace std;

int len(int n,int m){
    if(n ==1 || m ==1) return n+m;
    if(n-1 ==m || n+1 ==m) 
    return 2 * len(n-1,m);
    return len(n-1,m)+len(n,m-1);  //   简单递归

}




int main(int agrc, char **agrv){
    int n1,m1,n2,m2;
    while(scanf("%d%d%d%d",&n1,&m1,&n2,&m2) ==4){
        cout << len(n1,m1)<<endl;
        cout << len(n2,m2)<<endl;
    }

    return 0;
}